// 引入 Vite 的 defineConfig 方法，用于定义配置对象
import { defineConfig } from 'vite'
// 引入 Node.js 的 path 模块，用于处理文件和目录的路径
import path from 'path'
// 引入 Vite 的 Vue 插件，用于支持 Vue 3 项目
import vue from '@vitejs/plugin-vue'
// 引入 unplugin-auto-import 插件，用于自动导入 Vue 组件中的 API
import AutoImport from 'unplugin-auto-import/vite'
// 引入 unplugin-vue-components 插件，用于自动导入 Vue 组件
import Components from 'unplugin-vue-components/vite'
// 引入 ArcoResolver，它是 unplugin-vue-components 的一个解析器，用于支持 Arco Design Vue 组件库
import { ArcoResolver } from 'unplugin-vue-components/resolvers'

// 导出 Vite 配置对象
export default defineConfig({
  // 插件列表
  plugins: [
    // 添加 Vue 插件
    vue(),
    // 添加自动导入插件，并配置 Arco Design Vue 组件库的解析器
    AutoImport({
      resolvers: [ArcoResolver()],
    }),
    // 添加自动导入 Vue 组件插件，并配置 Arco Design Vue 的解析器，同时启用 sideEffect
    Components({
      resolvers: [
        ArcoResolver({
          sideEffect: true // 允许组件的副作用（如样式）被导入
        })
      ]
    })
  ],
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          'arcoblue-6': '#f85959',
        }, // 配置主题变量
        javascriptEnabled: true, // 允许 JavaScript 语法
      },
    }
  },
  // 解析配置
  resolve: {
    // 别名配置，将 "@" 指向 "src/*"，便于在项目中通过 @ 符号快速引用 src 目录下的文件
    alias: {
      "@": path.resolve(__dirname, "src"),
    },
  },
  server: {
    proxy: {
      '/v1': {// 匹配以 '/v1' 开头的请求，并将其代理到 'http://127.0.0.1:8096'
        target: 'http:localhost:9001', // 目标服务器地址
        changeOrigin: true, // 是否改变请求源，以避免跨域问题
        rewrite: (path) => path.replace(/^\/api/, ''),// 重写请求路径，将路径中的 '/api' 替换为空字符串
      },
    },
  },

})
